Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > คำนวณค่าใน textbox ช่วยดูโค้ดหน่อยครับ คือเวลาผมกรอกตัวเลขในคำนวณกันเช่น a1=123.10 a2=123.20 จะรวมโดยอัตโนมัติ



 

คำนวณค่าใน textbox ช่วยดูโค้ดหน่อยครับ คือเวลาผมกรอกตัวเลขในคำนวณกันเช่น a1=123.10 a2=123.20 จะรวมโดยอัตโนมัติ

 



Topic : 045073



โพสกระทู้ ( 72 )
บทความ ( 0 )



สถานะออฟไลน์




ช่วยดูโค้ดหน่อยครับ
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Untitled Document</title>
</head>
<script type="text/javaScript">
//เติม , (คอมมา)
function dokeyup( obj )
{
var key = event.keyCode;
if( key != 37 & key != 39 & key != 110 )
{
var value = obj.value;
var svals = value.split( "." ); //แยกทศนิยมออก
var sval = svals[0]; //ตัวเลขจำนวนเต็ม

var n = 0;
var result = "";
var c = "";
for ( a = sval.length - 1; a >= 0 ; a-- )
{
c = sval.charAt(a);
if ( c != ',' )
{
n++;
if ( n == 4 )
{
result = "," + result;
n = 1;
};
result = c + result;
};
};

if ( svals[1] )
{
result = result + '.' + svals[1];
};

obj.value = result;
};
};

//ให้ text รับค่าเป็นตัวเลขอย่างเดียว
function checknumber()
{
key = event.keyCode;
if ( key != 46 & ( key < 48 || key > 57 ) )
{
event.returnValue = false;
};
};

</script>
<link rel="stylesheet" type="text/css" href="epoch_styles.css" />
<script type="text/javascript" src="epoch_classes.js"></script>
<script type="text/javascript">
/*You can also place this code in a separate file and link to it like epoch_classes.js*/
var bas_cal,dp_cal,ms_cal;
window.onload = function () {
dp_cal = new Epoch('epoch_popup','popup',document.getElementById('popup_container'));

};
</script>
<script>
function calcfunc() {
var val1 = parseFloat(document.form1.a1.value);
var val2 = parseFloat(document.form1.a2.value);
document.form1.a3.value=val1+val2;
}
</script>
<body>
<form id="form1" name="form1" method="post" action="add1.php">
<table width="100%" border="1">
<tr>
<td>จำนวนเงิน1</td>
<td><input name="a1" type="text" id="a1" onchange="dokeyup(this);" onkeypress="checknumber()" onkeyup="dokeyup(this);calcfunc()">
&nbsp;</td>
</tr>
<tr>
<td>จำนวนเงิน2</td>
<td><input name="a2" type="text" id="a2" onchange="dokeyup(this);" onkeypress="checknumber()" onkeyup="dokeyup(this);calcfunc()">
&nbsp;</td>
</tr>
<tr>
<td>รวม</td>
<td><input name="a3" type="text" id="a3" onchange="dokeyup(this);" onkeypress="checknumber()" onkeyup="dokeyup(this);">
&nbsp;</td>
</tr>
<tr>
<td>หมายเหตุ</td>
<td><textarea name="desc" cols="50" rows="3" id="desc"></textarea></td>
</tr>
<tr>
<td>วันที่ดำเนินการเสร็จ</td>
<td><input name="date1" type="text" id="popup_container" style="text-align:center" />&nbsp;</td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="Submit" value="บันทึก" />
&nbsp;
<input type="reset" name="Submit2" value="ยกเลิก" />
<input name="dln" type="hidden" id="dln" value="<?=$dln;?>" />
</div></td>
</tr>
</table>
</form>


</body>
</html>
คือเวลาผมกรอกตัวเลขในคำนวณกันเช่น
a1=123.10
a2=123.20
จะรวมโดยอัตโนมัติที่ช่อง a3=246.30
แต่พอใส่
a1=1,234.10
a2=1,234.20
มันดันคำนวณเป็น a3=2
จะแก้ยังไงนะ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-07-07 09:58:12 By : coop_korat View : 6209 Reply : 11
 

 

No. 1



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

จาก
var val1 = parseFloat(document.form1.a1.value);
var val2 = parseFloat(document.form1.a2.value);

ลองเปลี่ยนเป็ฯ

var a1 = document.form1.a1.value.split(',').join('');
var a2 = document.form1.a2.value.split(',').join('');

var val1 = parseFloat(a1);
var val2 = parseFloat(a2);

ดูนะครับ






Date : 2010-07-07 10:19:55 By : pjgunner
 


 

No. 2

Guest


ทำงานได้โอเคเลยครับ แต่....... ผลลัพธ์ที่ได้ ไม่แสดงหลักของตัวเลขอ่าครับ เช่น พอได้ผลลัพธ์ 145000 ก็แสดงแบบนี้เลย ไม่แสดงเป็น
145,000 อ่าคับ มีคอมมาด้วยได้ป่าวครับ ผมวานผู้รู้ช่วยด้วยครับ ^^ ขอบคุณครับ
Date : 2011-02-24 22:50:22 By : BB
 

 

No. 3



โพสกระทู้ ( 476 )
บทความ ( 2 )



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ใช้ number_format() คับ
Date : 2011-02-24 23:40:31 By : boodemon
 


 

No. 4

Guest


ขอบคุณคุณสายหมอกครับ แต่ว่า.... แล้วเหมือนในโค้ดนี้ เขาใส่ตรงไหนหรอครับ รบกวนอีกครั้งน่ะครับ ขอบคุณครับ
Date : 2011-02-26 00:38:50 By : BOY
 


 

No. 5

Guest


ขอความช่วยเหลือทุกท่านครับ T_T

อย่างโค้ดที่ให้มาด้านบนสุดอ่ะครับ ผลลัพธ์ที่ได้ มันไม่มีหลักแสดงน่ะครับ เช่นเราป้อน 1,500 มันก็แสดง 1500

ผมใช้ทุกวิถีทางแล้วครับ ทั้ง number_format ก็ไม่แสดงผลลัพธ์ที่ถูกต้องสักทีอ่าครับ ช่วยด้วยครับ ทุกท่าน
Date : 2011-03-04 00:01:04 By : majung
 


 

No. 6



โพสกระทู้ ( 215 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

echo number_format($ผลลัพธ์);
Date : 2011-03-04 08:57:26 By : compeng
 


 

No. 7

Guest


ขอบคุณน่ะครับ แต่....งง ครับ เหอะๆๆๆ ลองดูแล้วไม่ได้อ่าครับ
Date : 2011-03-04 10:05:41 By : majung
 


 

No. 8



โพสกระทู้ ( 215 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

Code (PHP)
กำหนด ให้ $num = 1500 

ใช้ <br>
<?php $num=1500;?>
number_format($num,2) จะแสดงดังนี้ <font color="#0000CC"><?php  echo number_format($num,2); ?></font><br>
number_format($num) จะแสดงดังนี้ <font color="#0000CC"><?php  echo number_format($num); ?></font>



ลองดูคับ
Date : 2011-03-04 10:41:20 By : compeng
 


 

No. 9

Guest


ขอบคุณ...คุณ King_R_Ther มากๆครับ ผมอยากอธิบายให้คุณฟังน่ะครับ (อย่าหาว่าผมเรื่องมากเลย)

คือ..... ค่าที่ได้มันเป็นค่าที่อยู่ใน Javascript อ่าครับ มันก็เลยแสดงตามที่มันเห็น เช่น

if (document.form1.p1.value == "" && document.form1.a3.value == "")
{
var nul = "0";
var a1 = document.form1.a1.value.split(',').join('');
var a2 = document.form1.a2.value.split(',').join('');

var val1 = parseFloat(a1);
var val2 = parseFloat(a2);

document.form1.p2.value=nul;
document.form1.a4.value=val1+val2;
document.form1.a5.value=val1+val2;
}

เอาเป็นว่า ตามที่ผมเข้าใจน่ะครับ ใน textfiled ฟอร์มที่เรากรอกอ่าครับ มันสามารถที่จะแยกจำนวนต่างๆด้วยการคั่นเจ้า คอมม่าไว้ด้วยกัน (นั้นคือในส่วนของ function ที่เรากำหนดว่าให้เป็นอย่างไร) เสร็จหลังจากนั้นมันก็จะมาเข้าสู่ฟังก์ชั่นการคำนวณค่าอ่าครับ (คือเจ้าข้างบนนี่ล่ะครับ) จากนั้น เช่นผมมี textfiled อยู่ 2 ช่อง ผมขออธิบาย 1 ช่องน่ะครับ คือ ถ้าเราจะนำมันมาคำนวณเลยมันก็คงทำไม่ได้ เพราะค่าของมันยังคั่นคอมม่าอ่าครับ จาก
var a1 = document.form1.a1.value.split(',').join(''); // เลยต้องแยกเจ้า คอมม่าออกแล้วนำค่ามาต่อกันเพื่อทำการคำนวณกับค่าอื่นอ่าครับ

หลังจากนั้น ก็แปลงค่าจากจำนวนเต็ม มาอยู่ในรูป ทศนิยมอ่าครับ
var val1 = parseFloat(a1); //เพื่อทำการคำนวณกับค่าอื่นอ่าครับ
ตามความเข้าใจผมน่ะครับ(อย่าว่ากันเลยครับ ^^)
จากนั้นก็เอาค่าที่ยังไม่ได้คั่นเจ้าคอมม่า แต่อยู่ในรูปของตัวเลขทศนิยมที่แสดงผลลัพธ์แล้ว ไปแสดง textfiled ที่โชว์ค่า
document.form1.a4.value=val1;
(อย่า งง เลยน่ะครับ อิอิ ผมอธิบายไม่เก่งครับ)
เห้อออออออออออ ...... มันก็เลยเป็นแบบนี้แหละครับ(ผมคิดว่าน่ะครับ)
เป็นไปได้ไหม ถ้าผมจะเอาเจ้าค่า val1 ไปใส่ฟังก์ชั่น number_format ของ php อ่าครับ ช่วยด้วยน่ะครับ T_T
ขอบคุณครับ
Date : 2011-03-04 11:30:26 By : majung
 


 

No. 10



โพสกระทู้ ( 215 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ลองดูครับ
Code (PHP)
<script  language="javascript">
function number_format( number, decimals, dec_point, thousands_sep ) {

  var n = number, prec = decimals, dec = dec_point, sep = thousands_sep;
  n = !isFinite(+n) ? 0 : +n;
  prec = !isFinite(+prec) ? 0 : Math.abs(prec);
  sep = sep == undefined ? ',' : sep;

  var s = n.toFixed(prec),
      abs = Math.abs(n).toFixed(prec),
      _, i;

  if (abs > 1000) {
      _ = abs.split(/\D/);
      i = _[0].length % 3 || 3;

      _[0] = s.slice(0,i + (n < 0)) +
            _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
      s = _.join(dec || '.');
  } else {
      s = abs.replace('.', dec_point);
  }
  return s;
}
document.write(number_format(1000000.00, 2, '.', ',')); // ทดสอบ
</script> 


ยังคงยืนยัน ฟังก์ชั่น number_format(); 555+


ประวัติการแก้ไข
2011-03-04 15:01:34
2011-03-04 15:01:38
Date : 2011-03-04 15:00:37 By : compeng
 


 

No. 11

Guest


ขอบคุณ คุณ King_R_Ther มากเลยครับ

แต่ผมอยากได้รูปแบบเดียวกับ idea ของเจ้าของกระทู้น่ะครับ พอดีของผมมีค่าในการนำมาคำนวณมากกว่าของเขาเท่านั้นเองครับ

คืมผมต้องการช่วงนี้อ่าครับ

if (document.form1.p1.value == "" && document.form1.a3.value == "")
{
var nul = "0";
var a1 = document.form1.a1.value.split(',').join('');
var a2 = document.form1.a2.value.split(',').join('');

var val1 = parseFloat(a1);
var val2 = parseFloat(a2);

document.form1.p2.value=nul;
document.form1.a4.value=val1+val2; // ช่วงการบวกกันแล้วนำผลลัพธ์มาแสดงอ่าครับ Val1+Val2
document.form1.a5.value=val1+val2;
}

เป็นไปได้ไหม ที่เราสามารถใส่ฟังก์ชั่นพิเศษ number_format() ของ php มาใส่ใน Javascript เช่น

document.form1.a4.value='<?php number_format(val1,2,".",",")?>'; // มั่วๆเอาน่ะครับ อิอิ

เป็นไปได้ป่าวครับ สงสัยๆๆๆ อยากให้เป็นแบบนี้อ่าครับ
Date : 2011-03-04 15:23:34 By : majung
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : คำนวณค่าใน textbox ช่วยดูโค้ดหน่อยครับ คือเวลาผมกรอกตัวเลขในคำนวณกันเช่น a1=123.10 a2=123.20 จะรวมโดยอัตโนมัติ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่